let names = ['刘恒', '刘启', '刘彻', '刘弗陵', '海昏侯', '刘病已'];

// Array.prototype.keys() 返回一个包含数组中每个索引键的 Array Iterator 对象
let keys = names.keys();
console.log(keys, typeof(keys));

for (let k of keys) {
    console.log(k);
}

console.log('- - - - - - - - - - - - - - - -');

keys = names.keys();

let x;

do {
    // 每次调用 Array Iterator 的 next 函数都返回一个 实例

    //迭代器对象可以通过重复调用next（）显式地迭代。
    // 迭代一个迭代器被称为消耗了这个迭代器，因为它通常只能执行一次。 
    //在产生终止值之后，对next（）的额外调用应该继续返回{done：true}。
    x = keys.next();

    // 这个实例中包含了两个属性 value 和 done
    // value 表示本次取得的 值 ， done 表示是否处理完毕
    console.log(x.value, x.done);
} while (!x.done);